#define _CRT_SECURE_NO_WARNINGS 
#include<iostream>
#include<algorithm>
using namespace std;
//const int N = 1010;
//int  n = 0;
//struct S
//{
//	int time;
//	int index;
//};
//S g[N];
//bool cmp(const S& p1, const S& p2)
//{
//	return p1.time < p2.time;
//}
//int main()
//{
//	cin >> n;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> g[i].time;
//		g[i].index = i + 1;
//	}
//	sort(g, g + n,cmp);
//	double sum = 0;
//	double cost_time = 0;
//	for (int i = 0; i < n; i++)
//	{
//		sum += cost_time;
//		cost_time = g[i].time;
//	}
//	double average = sum / n;
//	for (int i = 0; i < n; i++)
//	{
//		cout << g[i].index << " ";
//	}
//	printf("%.2lf", average);
//	return 0;
//}
#include<iostream>
#include<algorithm>
using namespace std;
//int g[101] = { 0 },sum,average,n;
//int main()
//{
//	int count = 0;
//	cin >> n;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> g[i];
//		sum += g[i];
//	}
//	average = sum / n;
//	for (int i = 0; i < n; i++)
//	{
//		if (g[i] == average)
//		{
//			continue;
//		}
//		int t = average - g[i];
//		g[i + 1] -= t;
//		count++;
//	}
//	cout << count << endl;
//	return 0;
//}
#include<iostream>
#include<algorithm>
using namespace std;
//string str;
//int n, k, temp, mark,flag = 1;
//int find_min(int L,int R)
//{
//	char minc = str[L];
//	mark = L + 1;
//	for (int i = mark; i <= R; i++)
//	{
//		if (str[i] < minc)
//		{
//			minc = str[i];
//			mark = i + 1;
//		}
//	}
//	return minc - '0';
//}
//int main()
//{
//	cin >> n;
//	cin >> k;
//	for (int i = 0; i <= n - k; i++)
//	{
//		temp = find_min(mark, i + 1);
//		if (temp == 0)
//		{
//			continue;
//		}
//		flag = 0;
//	}
//	if (flag == 0)
//	{
//		cout << 0 << endl;
//	}
//	else
//	{
//		cout << temp << endl;
//	}
//	return 0;
//}
//#include<iostream>
//#include<algorithm>
//using namespace std;
//string  removeKdigit(string num, int k)
//{
//	int len = num.size();
//	if (k >= len)
//	{
//		return "0";
//	}
//	string result;
//	for (char& digit : num)
//	{
//		while (k > 0 && !result.empty() && result.back() > digit)
//		{
//			result.pop_back();
//			k--;
//		}
//		if (!result.empty() || digit != '0')
//		{
//			result.push_back(digit);
//		}
//	}
//	while (k > 0 && !result.empty())
//	{
//		result.pop_back();
//		k--;
//	}
//	if (result.empty())
//	{
//		return "0";
//	}
//		return result;
//}
//int main()
//{
//	string num;
//	int  k;
//	cin >> num;
//	cin >> k;
//	string result = removeKdigit(num, k);
//	cout << result << endl;;
//}
//#include<vector>
//#include<map>
//int n = 0, k = 0,sum = 0;
//void reverse()
//{
//
//}
//int main()
//{
//	cin >> n >> k;
//	vector<int>a(n);
//	vector<int>b(n);
//	for (int i = 0; i < n; i++)
//	{
//		cin >> a[i];
//		sum += a[i];
//	}
//	for (int i = 0; i < n; i++)
//	{
//		cin >> b[i];
//	}
//	for (int i = 0; i < n; i++)
//	{
//		map<int, int>(a[i], b[i]);
//	}
//	while (k--)
//	{
//		reverse();
//	}
//	return 0;
//}
//#include<iostream>
//#include<algorithm>
//using namespace std;
//#include<vector>
//int main()
//{
//	int n, k;
//	cin >> n >> k;
//	vector<int>a(n, 0);
//	vector<int>b(n, 0);
//	long long sum = 0;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> a[i];
//		sum += a[i];
//	}
//	for (int i = 0; i < n; i++)
//	{
//		cin >> b[i];
//	}
//	vector<int>diff(n, 0);
//	for (int i = 0; i < n; i++)
//	{
//		diff[i] = b[i] - a[i];
//	}
//	sort(diff.rbegin(), diff.rend());
//	for (int i = 0; i < k && i < n; i++)
//	{
//		if (diff[i] > 0)
//		{
//			sum += diff[i];
//		}
//	}
//	cout << sum << endl;
//	return 0;
//}
//#include<iostream>
//#include<algorithm>
//using namespace std;
//#include<vector>
//int main(
//{
//	int n = 0;
//	cin >> n;
//	vector<int>v(n,0);
//	vector<int>v1(n * n,0);
//	for (int i = 0; i < n; i++)
//	{
//		cin >> v[i];
//	}
//	int count = 0;
//	/*for (int i = 0; i < n; i++)
//	{*/
//		for (int j = 0; j < n; j++)
//		{
//			for (int k = 0; k < n; k++)
//			{
//				if (v[j] != v[k])
//				{
//					v1[count++] = abs(v[j] - v[k]);
//				}
//			}
//		}
//	//}
//	int min = 0;
//	for (int i = 0; i < count; i++)
//	{
//		if (v1[i] <= min)
//		{
//			min = v1[i];
//		}
//	}
//	cout << min << endl;
//	return 0;
//}
//#include<iostream>
//#include<algorithm>
//using namespace std;
//#include<vector>
//int main()
//{
//	int n = 0;
//	cin >> n;
//	vector<long long>v(n, 0);
//	for (int i = 0; i < n; i++)
//	{
//		cin >> v[i];
//	}
//	sort(v.begin(), v.end());
//	long long min_value = 1e9 + 10;
//	for (int i = 1; i < n; i++)
//	{
//		min_value = min(min_value, v[i] - v[i - 1]);
//	}
//	cout << min_value << endl;
//	return 0;
//}
//#include<iostream>
//#include<algorithm>
//using namespace std;
//#include<vector>
//int main()
//{
//	int n = 0;
//	cin >> n;
//	int v[] = { 0 };
//	int temp[] = { 0 };
//	int min, max;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> v[i];
//		if (v[i] <= min)
//		{
//			min = v[i];
//		}
//
//	}
//	sort(v,v + n);
//	int critiality = 0;
//	int index = 0;
//	int point = 0;
//	int i = 0;
//	int k = 0;
//	if (n % 2 == 0)
//	{
//		for (i = 0; i < n; i++)
//		{
//			if (v[i] >= 0)
//			{
//				critiality = v[i];
//				index = i;
//				break;
//			}
//		}
//		for (i = 0; i < n && v[i] < critiality; i += 2)
//		{
//			temp[i] = v[0];
//			temp[i + 1] = v[index - 1 - i];
//		}
//		point = i;
//		temp[point] = critiality;
//		for (i = point + 1; i < n  && v[i] > critiality; i += 2, k++)
//		{
//			temp[i] = v[n - 1 - k];
//			temp[i + 1] = v[i];
//		}
//	}
//	else if (n % 2 == 1)
//	{
//		for (i = 0; i < n; i++)
//		{
//			if (v[i] >= 0)
//			{
//				critiality = v[i];
//				index = i;
//				break;
//			}
//		}
//		for (i = 0; i < n && v[i] < critiality; i+= 2)
//		{
//			temp[i] = v[0];
//			temp[i + 1] = v[index - 1 - i];
//		}
//		point = i;
//		temp[point] = critiality;
//		for (i = point + 1; i < n - 1&& v[i] > critiality; i += 2,k++)
//		{
//			temp[i] = v[n - 1 - k];
//			temp[i + 1] = v[i];
//		}
//		temp[n - 1] = v[n - 1];
//	}
//	for (int i = 0; i < n; i++)
//	{
//		temp[i] = abs(temp[i]);
//	}
//	long long sum = 0;
//	for (int i = 1; i < n; i++)
//	{
//		sum += temp[i] - temp[i - 1];
//	}
//	cout << sum << endl;
//	return 0;
//}
#include<iostream>
#include<algorithm>
using namespace std;
#include<vector>
const int N = 1e5 + 10;
int a[N];
typedef long long ll;
int main()
{
	ll even = 0, odd = 0;
	int n;
	cin >> n;
	int oddMin = 0x3f3f3f3f;
	int evenMax = 0;
	for (int i = 0; i < n; i++)
	{
		cout << a[i];
		a[i] = abs(a[i]);
		if (i % 2 == 1)
		{
			odd += a[i];
			oddMin = min(oddMin, a[i]);
		}
		else
		{
			even += a[i];
			evenMax = max(evenMax, a[i]);
		}
	}
	cout << max((odd - even), (odd - oddMin + evenMax) - (even - evenMax + oddMin) )<< endl;
	return 0;
}